package com.cherry.system.domain;

import com.cherry.common.annotation.Excel;
import com.cherry.common.annotation.Excel.ColumnType;
import com.cherry.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

/**
 * 岗位表 sys_post
 *
 * @author 孙晨阳
 */
public class SysPost extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 岗位序号
     */
    @Excel(name = "岗位序号", cellType = ColumnType.NUMERIC)
    private Long postId;

    /**
     * 公司全名
     */
    @Excel(name = "公司全名")
    private String companyFullName;

    /**
     * 公司简称
     */
    @Excel(name = "公司简称")
    private String companyShortName;

    /**
     * 公司规模
     */
    @Excel(name = "公司规模")
    private String companySize;

    /**
     * 融资阶段
     */
    @Excel(name = "融资阶段")
    private String financeStage;

    /**
     * 区域
     */
    @Excel(name = "区域")
    private String district;

    /**
     * 岗位名称
     */
    @Excel(name = "岗位名称")
    private String positionName;

    /**
     * 工作经验
     */
    @Excel(name = "工作经验")
    private String workYear;

    /**
     * 学历要求
     */
    @Excel(name = "学历要求")
    private String education;

    /**
     * 薪资
     */
    @Excel(name = "薪资")
    private String salary;

    /**
     * 岗位福利
     */
    @Excel(name = "岗位福利")
    private String positionAdvantage;

    /**
     * 经营范围
     */
    @Excel(name = "经营范围")
    private String industryField;

    /**
     * 岗位类型
     */
    @Excel(name = "岗位类型")
    private String firstType;

    /**
     * 公司福利
     */
    @Excel(name = "公司福利")
    private String companyLabelList;

    /**
     * 第二职位
     */
    @Excel(name = "第二职位")
    private String secondType;

    /**
     * 城市
     */
    @Excel(name = "城市")
    private String city;

    /**
     * 状态（0正常 1关闭）
     */
    @Excel(name = "状态", readConverterExp = "0=正常,1=关闭")
    private String status;

    public Long getPostId() {
        return postId;
    }

    public void setPostId(Long postId) {
        this.postId = postId;
    }

    @NotBlank(message = "公司全名不能为空")
    @Size(min = 0, max = 100, message = "公司全名长度不能超过100个字符")
    public String getCompanyFullName() {
        return companyFullName;
    }

    public void setCompanyFullName(String companyFullName) {
        this.companyFullName = companyFullName;
    }

    public String getCompanyShortName() {
        return companyShortName;
    }

    public void setCompanyShortName(String companyShortName) {
        this.companyShortName = companyShortName;
    }

    public String getCompanySize() {
        return companySize;
    }

    public void setCompanySize(String companySize) {
        this.companySize = companySize;
    }

    public String getFinanceStage() {
        return financeStage;
    }

    public void setFinanceStage(String financeStage) {
        this.financeStage = financeStage;
    }

    public String getDistrict() {
        return district;
    }

    public void setDistrict(String district) {
        this.district = district;
    }

    @NotBlank(message = "岗位名称不能为空")
    @Size(min = 0, max = 100, message = "岗位名称长度不能超过100个字符")
    public String getPositionName() {
        return positionName;
    }

    public void setPositionName(String positionName) {
        this.positionName = positionName;
    }

    public String getWorkYear() {
        return workYear;
    }

    public void setWorkYear(String workYear) {
        this.workYear = workYear;
    }

    public String getEducation() {
        return education;
    }

    public void setEducation(String education) {
        this.education = education;
    }

    @NotBlank(message = "岗位名称不能为空")
    @Size(min = 0, max = 50, message = "岗位名称长度不能超过50个字符")
    public String getSalary() {
        return salary;
    }

    public void setSalary(String salary) {
        this.salary = salary;
    }

    public String getPositionAdvantage() {
        return positionAdvantage;
    }

    public void setPositionAdvantage(String positionAdvantage) {
        this.positionAdvantage = positionAdvantage;
    }

    public String getIndustryField() {
        return industryField;
    }

    public void setIndustryField(String industryField) {
        this.industryField = industryField;
    }

    public String getFirstType() {
        return firstType;
    }

    public void setFirstType(String firstType) {
        this.firstType = firstType;
    }

    public String getCompanyLabelList() {
        return companyLabelList;
    }

    public void setCompanyLabelList(String companyLabelList) {
        this.companyLabelList = companyLabelList;
    }

    public String getSecondType() {
        return secondType;
    }

    public void setSecondType(String secondType) {
        this.secondType = secondType;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("postId", getPostId())
                .append("companyFullName", getCompanyFullName())
                .append("companyShortName", getCompanyShortName())
                .append("companySize", getCompanySize())
                .append("financeStage", getFinanceStage())
                .append("district", getDistrict())
                .append("positionName", getPositionName())
                .append("workYear", getWorkYear())
                .append("education", getEducation())
                .append("salary", getSalary())
                .append("positionAdvantage", getPositionAdvantage())
                .append("industryField", getIndustryField())
                .append("firstType", getFirstType())
                .append("companyLabelList", getCompanyLabelList())
                .append("secondType", getSecondType())
                .append("city", getCity())
                .append("status", getStatus())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}